import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.text.PDFTextStripper;

import java.io.*;
import java.util.HashMap;

public class PdfUtils {

//    public static HashMap<String,String> readTocodeName() {
//        InputStreamReader read = null;
//        HashMap<String,String> ocodeNames = new HashMap<String,String>();
//        try {
//            read = new InputStreamReader(new FileInputStream("codeName.txt"),"utf8");
//        } catch (Exception e) {
//            // TODO Auto-generated catch block
//            e.printStackTrace();
//        } //考虑到编码格式
//        BufferedReader bufferedReader = new BufferedReader(read);
//        String line = null;
//        try {
//            while((line = bufferedReader.readLine())!=null){
////                stopwords.add(line.trim());
//                String[] s_all = line.split("\t");
//                if(s_all[0].trim().length()>0){
//                    ocodeNames.put(s_all[0].replace("\uFEFF",""),s_all[1]);
//                }
//            }
//        } catch (IOException e) {
//            // TODO Auto-generated catch block
//            e.printStackTrace();
//        }
//        return ocodeNames;
//
//    }

    public static String getTextPdf1(File file1) throws Exception {
        PDDocument pdDocument = PDDocument.load(file1);
        // 获取页码
        int PageSize = pdDocument.getNumberOfPages();
        // 读文本内容
        PDFTextStripper stripper = new PDFTextStripper();
        // 设置按顺序输出
        stripper.setSortByPosition(true);
        stripper.setStartPage(1);
        stripper.setEndPage(PageSize);
        return stripper.getText(pdDocument);
    }

//    public static int getPageSize1(File file1) throws IOException {
//        PDDocument pdDocument = PDDocument.load(file1);
//        // 获取页码
//        int PageSize = pdDocument.getNumberOfPages();
//        return PageSize;
//    }

    public static String getTextPdf(File file){


        StringBuilder text = new StringBuilder();
//        Document thePDF = null;
//
//        try
//        {
//            // check license
//            if (!ExpaInitialize.getLicenseIsValid())
//                throw new Exception("No valid license found.");
//
//            // open input file
//            thePDF = new Document();
//            if (!thePDF.open(file.getPath(), ""))
//                throw new Exception("Error 0x" + Integer.toHexString(thePDF.getLastError()) +
//                        " while opening document: " + thePDF.getLastErrorMessage());
//
//            // loop through all pages
//            for(int curPage = 1; curPage <= thePDF.getPageCount(); curPage++)
//            {
//                // set the page number
//                thePDF.setPageNo(curPage);
//
//                // get the content
//                Content theContent = thePDF.getPage().getContent();
//
//                // extract text
//                theContent.resetContent(true);
//                theContent.setTranslateSymbolic(true);
//                theContent.setTextExtConfiguration(NativeLibrary.TEXTEXTCONFIGURATION.eTECPosMergeSingleSpace |
//                        NativeLibrary.TEXTEXTCONFIGURATION.eTECPosMergeMultiSpace);
//                theContent.setExpandLigatures(true);
//
//                // loop through all text tokens on the page
//                System.out.println("************************************************");
//                System.out.println("** Begin Page " + curPage + " of " + thePDF.getPageCount());
//                System.out.println("************************************************");
//                while(theContent.getNextText() != null) {
//                    String unicodeString = theContent.getText().getUnicodeString();
//                    text.append(unicodeString+"\r\n");
//                    System.out.println(unicodeString);
//                }
//                System.out.println();
//            }
//
//        }
//        catch (Throwable e)
//        {
//            e.printStackTrace();
//        }
//        finally
//        {
//            if (thePDF != null)
//            {
//                // close document
//                thePDF.close();
//                thePDF.destroyObject();
//            }
//        }

        return text.toString();

    }
}
